{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0f58af03-b860-4499-820c-14713f00fbcf",
   "metadata": {},
   "source": [
    "Chapter 08\n",
    "# 无输入、无输出函数，装饰线图\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "68412f83-193b-4fe9-8cfa-954da1c4babd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入包\n",
    "import matplotlib.pyplot as plt\n",
    "# 导入 Matplotlib 库中的 pyplot 模块，并将其命名为 plt\n",
    "import numpy as np\n",
    "# 导入 NumPy 库，并将其命名为 np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "821539d0-16ca-4709-a69f-45cbe526637d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 自定义函数\n",
    "def beautify_line_chart():\n",
    "    # 添加标签\n",
    "    plt.xlabel(\"x\")\n",
    "    plt.ylabel(\"f(x)\")\n",
    "    # 设置坐标轴范围\n",
    "    plt.xlim(-2, 2)\n",
    "    plt.ylim(-2, 2)\n",
    "    # 设置横纵轴刻度\n",
    "    plt.xticks([-2,-1,0,1,2])\n",
    "    plt.yticks([-2,-1,0,1,2])\n",
    "    # 添加网格线\n",
    "    plt.grid(True)\n",
    "    # 横纵轴统一标尺\n",
    "    plt.gca().set_aspect('equal', adjustable='box')\n",
    "    # 显示图形\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c31936df-7a73-4445-9095-fda7a35cbdc6",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_array = np.linspace(-2,2,101)\n",
    "# 使用NumPy的linspace函数创建一个包含101个元素的数组\n",
    "# 这些元素均匀地分布在区间[-2, 2]上，左闭右闭"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "468b8780-0406-4ae8-94bb-a33a2254f154",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制直线\n",
    "fig, ax = plt.subplots(figsize = (4,4))\n",
    "# plt.subplots()返回值解包为两个变量：fig 和 ax\n",
    "# fig图形窗口对象，可以用于设置图形窗口的属性\n",
    "# ax 是坐标轴对象，用于绘制具体的图形和设置坐标轴的属性\n",
    "# figsize=(4, 4) 表示图形窗口的宽度为4英寸，高度为4英寸\n",
    "\n",
    "y_array = x_array # 一次函数 y = x\n",
    "plt.plot(x_array, y_array)\n",
    "beautify_line_chart() # 调用自定义函数绘制美化的线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a31498b4-fdaf-42e4-98ca-d45fa658d620",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制抛物线\n",
    "fig, ax = plt.subplots(figsize = (4,4))\n",
    "y_array = x_array**2 - 2 # 二次函数\n",
    "plt.plot(x_array, y_array)\n",
    "beautify_line_chart() # 调用自定义函数绘制美化的线图"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
